home *** CD-ROM | disk | FTP | other *** search
/ APC & TCP 4 / APC & TCP 4.iso / games / publicdomain / a / attacks / sources / attackssprites.mod < prev    next >
Text File  |  1994-05-14  |  6KB  |  175 lines

  1. IMPLEMENTATION MODULE attackssprites;
  2.  
  3. (*$R-*) (* range checking OFF *)
  4.  
  5. FROM header
  6.   IMPORT squaretype;
  7.  
  8. FROM Memory
  9.   IMPORT   AllocMem, FreeMem, MemReqSet, MemChip, MemClear;
  10.  
  11. FROM SYSTEM
  12.   IMPORT ADDRESS, LONGWORD;
  13.  
  14. (**************************************************************************)
  15. PROCEDURE InitPointers() : BOOLEAN;
  16.  
  17. (*   This procedure starts the ball rolling for the pointer data.  It     *)
  18. (* allocates chip memory for the sprite images, and copies the informa-   *)
  19. (* tion to those locations.  It returns true only if the memory alloca-   *)
  20. (* tions went ok.                                                         *)
  21. (*                                                                        *)
  22. (*   INPUT                                                                *)
  23. (*            n/a                                                         *)
  24. (*                                                                        *)
  25. (*   OUTPUT                                                               *)
  26. (*                                                                        *)
  27. (*            Returns TRUE only if everything is safe to proceed.         *)
  28.  
  29. VAR
  30.   success : BOOLEAN;
  31.   t : tempspritetype;    (* holds sprite data *)
  32.  
  33. BEGIN
  34.  
  35. success := TRUE;
  36.  
  37.            (* Get the memory for the sprites *)
  38. circle := tempspriteptr(AllocMem (76, MemReqSet{MemChip, MemClear}));
  39. IF circle = NIL THEN
  40.   success := FALSE;
  41.   ELSE
  42.      mypointer[red] := tempspriteptr(AllocMem (76, MemReqSet{MemChip, MemClear}));
  43.      IF mypointer[red] = NIL THEN
  44.         success := FALSE;
  45.         FreeMem (ADDRESS(circle), 76);
  46.         ELSE
  47.            mypointer[blue] := tempspriteptr(AllocMem (76, MemReqSet{MemChip, MemClear}));
  48.            IF mypointer[blue] = NIL THEN
  49.               success := FALSE;
  50.               FreeMem (ADDRESS(circle), 76);
  51.               FreeMem (ADDRESS(mypointer[red]), 76);
  52.               ELSE
  53.                  emptysquare := tempspriteptr(AllocMem (76, MemReqSet{MemChip, MemClear}));
  54.                  IF emptysquare = NIL THEN
  55.                     success := FALSE;
  56.                     FreeMem (ADDRESS(circle), 76);
  57.                     FreeMem (ADDRESS(mypointer[red]), 76);
  58.                     FreeMem (ADDRESS(mypointer[blue]), 76);
  59.                     ELSE
  60.                        blocksquare := tempspriteptr(AllocMem (76, MemReqSet{MemChip, MemClear}));
  61.                        IF blocksquare = NIL THEN
  62.                           success := FALSE;
  63.                           FreeMem (ADDRESS(circle), 76);
  64.                           FreeMem (ADDRESS(mypointer[red]), 76);
  65.                           FreeMem (ADDRESS(mypointer[blue]), 76);
  66.                           FreeMem (ADDRESS(emptysquare), 76);
  67.                           END  (* if blocksquare *)
  68.                     END (* if emptysquare *)
  69.               END; (* if mypointer[blue] *)
  70.         END;  (* if mypointer[red] *)
  71.   END;  (* if circle *)
  72.  
  73. IF success THEN
  74.   t[0] := LONGWORD(000000000H);           (* the circle *)
  75.   t[1] := LONGWORD(007E007E0H);             (* 01 is the light color *)
  76.   t[2] := LONGWORD(01EF81918H);             (* 11 is the dark color *)
  77.   t[3] := LONGWORD(0323C2DC4H);             (* 10 is the regular color *)
  78.   t[4] := LONGWORD(069CE57F2H);
  79.   t[5] := LONGWORD(067FE5FA2H);
  80.   t[6] := LONGWORD(0C7FBBD25H);
  81.   t[7] := LONGWORD(0DFFFBCA1H);
  82.   t[8] := LONGWORD(0DFB7B249H);
  83.   t[9] := LONGWORD(0DFFDAD03H);
  84.   t[10] := LONGWORD(0DFE7A819H);
  85.   t[11] := LONGWORD(0FF6B8495H);
  86.   t[12] := LONGWORD(07FE3401FH);
  87.   t[13] := LONGWORD(07ED6412AH);
  88.   t[14] := LONGWORD(03B4E24B6H);
  89.   t[15] := LONGWORD(01E7C19BCH);
  90.   t[16] := LONGWORD(007F007F0H);
  91.   t[17] := LONGWORD(000000000H);
  92.   t[18] := LONGWORD(000000000H);
  93.   circle^ := t;
  94.  
  95.   t[0] := LONGWORD(000000000H);           (* the red pointer *)
  96.   t[1] := LONGWORD(001FE01FEH);
  97.   t[2] := LONGWORD(0FFFFFF03H);
  98.   t[3] := LONGWORD(0FFFF81F1H);
  99.   t[4] := LONGWORD(07FFF7FE1H);
  100.   t[5] := LONGWORD(007FF0421H);
  101.   t[6] := LONGWORD(007FF07C1H);
  102.   t[7] := LONGWORD(003FF0221H);
  103.   t[8] := LONGWORD(003FF03C3H);
  104.   t[9] := LONGWORD(001FE013EH);
  105.   t[10] := LONGWORD(001E001E0H);
  106.   t[11] := LONGWORD(000000000H);
  107.   t[12] := LONGWORD(000000000H);
  108.   mypointer[red]^ := t;
  109.  
  110.   t[0] := LONGWORD(000000000H);           (* the blue pointer *)
  111.   t[1] := LONGWORD(07F807F80H);
  112.   t[2] := LONGWORD(0C0FFFFFFH);
  113.   t[3] := LONGWORD(08F81FFFFH);
  114.   t[4] := LONGWORD(087FEFFFEH);
  115.   t[5] := LONGWORD(08420FFE0H);
  116.   t[6] := LONGWORD(083E0FFE0H);
  117.   t[7] := LONGWORD(08440FFC0H);
  118.   t[8] := LONGWORD(0C3C0FFC0H);
  119.   t[9] := LONGWORD(07C807F80H);
  120.   t[10] := LONGWORD(007800780H);
  121.   t[11] := LONGWORD(000000000H);
  122.   t[12] := LONGWORD(000000000H);
  123.   mypointer[blue]^ := t;
  124.  
  125.   t[0] := LONGWORD(000000000H);           (* the empty square *)
  126.   t[1] := LONGWORD(0FFFFFFFFH);           (* O1 is grey and 11 is black *)
  127.   t[2] := LONGWORD(08001FFFFH);
  128.   t[3] := LONGWORD(08001FFFFH);
  129.   t[4] := LONGWORD(08001FFFFH);
  130.   t[5] := LONGWORD(08001FFFFH);
  131.   t[6] := LONGWORD(08001FFFFH);
  132.   t[7] := LONGWORD(08001FFFFH);
  133.   t[8] := LONGWORD(08001FFFFH);
  134.   t[9] := LONGWORD(08001FFFFH);
  135.   t[10] := LONGWORD(08001FFFFH);
  136.   t[11] := LONGWORD(08001FFFFH);
  137.   t[12] := LONGWORD(08001FFFFH);
  138.   t[13] := LONGWORD(08001FFFFH);
  139.   t[14] := LONGWORD(08001FFFFH);
  140.   t[15] := LONGWORD(0FFFFFFFFH);
  141.   t[16] := LONGWORD(000000000H);
  142.   t[17] := LONGWORD(000000000H);
  143.   emptysquare^ := t;
  144.  
  145.   t[0] := LONGWORD(000000000H);             (* the block square *)
  146.   t[1] := LONGWORD(00000FFFFH);             (* O1 is lt grey and *)
  147.   t[2] := LONGWORD(00000FFFFH);             (* 10 is medium grey *)
  148.   t[3] := LONGWORD(03FFFC003H);             (* 11 is dark grey *)
  149.   t[4] := LONGWORD(03FFFC003H);
  150.   t[5] := LONGWORD(03FFFC003H);
  151.   t[6] := LONGWORD(03FFFC003H);
  152.   t[7] := LONGWORD(03FFFC003H);
  153.   t[8] := LONGWORD(03FFFC003H);
  154.   t[9] := LONGWORD(03FFFC003H);
  155.   t[10] := LONGWORD(03FFFC003H);
  156.   t[11] := LONGWORD(03FFFC003H);
  157.   t[12] := LONGWORD(03FFFC003H);
  158.   t[13] := LONGWORD(03FFFC003H);
  159.   t[14] := LONGWORD(03FFFC003H);
  160.   t[15] := LONGWORD(07FFFFFFFH);
  161.   t[16] := LONGWORD(0FFFFFFFFH);
  162.   t[17] := LONGWORD(000000000H);
  163.   t[18] := LONGWORD(000000000H);
  164.   blocksquare^ := t;
  165.  
  166.   END; (* if success *)
  167.  
  168.   RETURN success;
  169. END InitPointers;
  170.  
  171.  
  172. (***************************************************************)
  173.  
  174. END attackssprites.
  175.